Object.keys()方法會回傳一個排序結果的陣列,也就是說,會將參數物件本身的key透過陣列回傳。
例如:
let array = ['a','b','c'];
console.log(Object.keys(array)); //['0','1','2']
let obj = {1:'a',2:'b',3:'c'};
console.log(Object.keys(obj)); //['1','2','3']
而在 ES5 中,如果這個方法的參數不是一個標準物件(例如原始型別),將會產生 TypeError錯誤。而在 ES6,非物件的參數會強制轉換成物件。
Object.keys("foo");
// TypeError: "foo" is not an object(ES5)
Object.keys("foo");
// ["0", "1", "2"](ES6)
Object.values方法回傳一個陣列,同樣地,return參數物件本身的鍵值(value)。
let obj = {name: "hotdog",num:5};
Object.values(obj); //['hotdog','5']
如果Object.values方法的參數是字串,將會回傳字串各個字組成的陣列。
Object.values('food');
//['f','o','o','d']
如果參數是布林值或者數字,則會回傳空陣列
Object.values(true) // []
Object.values(5) // []